package cc.rengu.igas.bsps.common.dao;

import cc.rengu.igas.bsps.common.entity.EventInfo;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 事件信息表操作接口类
 * Created by 王成 on 2018/10/8.
 */
public interface EventInfoMapper {
    /**
     * 登记事件信息
     *
     * @param eventInfo 申报事件信息
     * @return 0-成功，其它-失败
     */
    int insertEventInfo(EventInfo eventInfo) throws Exception;

    /**
     * 根据机构标识及事件标识查询申报信息
     *
     * @param instId  机构标识
     * @param eventId 事件标识
     * @return 申报事件信息
     */
    EventInfo selectEventInfoByPrimaryKey(String instId, String eventId) throws Exception;

    /**
     * 根据主键更新事件申报工单信息
     *
     * @param eventInfo 工单信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateEventInfoByPrimaryKey(EventInfo eventInfo) throws Exception;

    /**
     * 根据前端申报流水号查询申报信息
     *
     * @param instId        机构标识
     * @param declareSeqNum 申报流水号
     * @return 申报事件信息
     */
    EventInfo selectEventInfoByDeclareSeqNum(String instId, String declareSeqNum) throws Exception;

    /**
     * 根据机构标识查询所有事件申报信息
     *
     * @param instId    机构标识
     * @param startDate 开始申报日期
     * @param endDate   截止申报日期
     * @return 所有事件申报信息
     */
    List<EventInfo> selectEventInfoByDeclareDate(String instId, String startDate, String endDate) throws Exception;

    /**
     * 根据机构标识查询所有事件申报信息
     *
     * @param eventInfo 事件实体
     * @param pageInfo  分页
     * @return 所有事件申报信息
     */
    PageResult selectEventInfoByDeclareDatePage(EventInfo eventInfo, PageInfo pageInfo) throws Exception;
}
